#include <iostream>
#include <string>

using namespace std;
/*程序没有错误，是正确的，但是并不能说明：引用能重新赋值。很明显，引用是不能重新赋值的，只是理解上错了！
引用的赋值：是指引用初始化时，它的引用对象只能是变量，并且，一旦它指定为某一个对象的引用后，就不能更改了。但是，可以用这个引用来改变它的对象的值，从而达到引用的目的——作为变量对象的别名。
如上例，引用k初始化为i，即k从此以后一直是i的引用，若想让k不再是i的引用而成为别的变量的引用那是不可能的。所以，接下来的一句“k = j;
”就不能理解成：取消k是i的引用而将k作为j的引用。正确的理解应该是：利用引用k来改变它所指对象i的值，即相当于语句“k = 5;
”。若在上示例语句“k = j;
”后加上一句“j = 10”，结果将是：“i = 5;
j = 10;
k = 5”，从这个结果就能很好理解了。
*/
int main(int argc, char const *argv[])
{

	int a = 1021;
	int b = 2048;
	int &p = a;
	p = b;
	cout << "a=" << a << endl;

	return 0;
}
